Automatic tuning floating bridge for electric stringed instruments

ABSTRACT

A method, computer program product, and system for automatically tuning a stringed instrument. An initial height of a first string of an instrument having a plurality of strings and a floating bridge is determined. The height of the plurality of strings is determined using a bridge sensor. The floating bridge is locked. A frequency of the first string is analyzed. In response to determining the frequency of the first string does not match a predetermined frequency, a tuning peg servo motor to adjust a tuning peg, thereby adjusting a string tension of the first string. The one or more bridge servo motors adjusts a spring tension until the spring tension of the one or more springs equals the string tension of the first string. In response to determining the first string is tuned, the floating bridge is unlocked.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of tuning stringedinstruments, and more particularly to an automatic tuning floatingbridge for electric stringed instruments.

Bridges for electric stringed instruments (e.g., guitars) can be eitherfloating or fixed. A bridge is an anchoring point at the base of theinstrument. A fixed bridge provides no active control over stringtension or pitch. Often, a floating bridge includes a tremolo arm thatextends from below the string anchoring point and acts as a lever thatthe user can push or pull to change the strings tension and, as aresult, the pitch of the strings. Frequently, a floating bridge can bepositioned by a user to a desired angle. Electric instruments utilizinga floating bridge can be tuned by balancing string tension using thetunings pegs at the head of the instrument and by raising or loweringthe bridge by adjusting spring tension on the back of the guitar.

SUMMARY

According to one embodiment of the present invention, a method forautomatic tuning floating bridge for electric stringed instruments isprovided. The method includes determining, by one or more processors, aninitial height of a first string of an instrument having a plurality ofstrings and a floating bridge, wherein a height of the plurality ofstrings is determined using a bridge sensor; locking, by one or moreprocessors, the floating bridge; analyzing, by one or more processors, afrequency of a first string; in response to determining the frequency ofthe first string does not match a predetermined frequency, causing, byone or more processors, a tuning peg servo motor to adjust a tuning peg,thereby adjusting a string tension of the first string; causing, by oneor more processors, the one or more bridge servo motors to adjust aspring tension in one or more springs attached to the floating bridge,wherein the spring tension of the one or more springs equals the stringtension of the first string; and in response to determining the firststring is tuned, unlocking, by one or more processors, the floatingbridge.

According to another embodiment of the present invention, a computerprogram product for automatic tuning floating bridge for electricstringed instruments is provided. The computer program product comprisesa computer readable storage medium and program instructions stored onthe computer readable storage medium. The program instructions includeprogram instructions to determine an initial height of a first string ofan instrument having a plurality of strings and a floating bridge,wherein a height of the plurality of strings is determined using abridge sensor; program instructions to lock the floating bridge; programinstructions to analyze a frequency of a first string; in response todetermining the frequency of the first string does not match apredetermined frequency, program instructions to cause a tuning pegservo motor to adjust a tuning peg, thereby adjusting a string tensionof the first string; program instructions to cause the one or morebridge servo motors to adjust a spring tension in one or more springsattached to the floating bridge, wherein the spring tension of the oneor more springs equals the string tension of the first string; and inresponse to determining the first string is tuned, program instructionsto unlock the floating bridge.

According to another embodiment of the present invention, a computersystem for automatic tuning floating bridge for electric stringedinstruments is provided. The computer system includes one or morecomputer processors, one or more computer readable storage media, andprogram instructions stored on the computer readable storage media forexecution by at least one of the one or more processors. The programinstructions include program instructions to determine an initial heightof a first string of an instrument having a plurality of strings and afloating bridge, wherein a height of the plurality of strings isdetermined using a bridge sensor; program instructions to lock thefloating bridge; program instructions to analyze a frequency of a firststring; in response to determining the frequency of the first stringdoes not match a predetermined frequency, program instructions to causea tuning peg servo motor to adjust a tuning peg, thereby adjusting astring tension of the first string; program instructions to cause theone or more bridge servo motors to adjust a spring tension in one ormore springs attached to the floating bridge, wherein the spring tensionof the one or more springs equals the string tension of the firststring; and in response to determining the first string is tuned,program instructions to unlock the floating bridge.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a guitar, in accordance with an embodimentof the present invention;

FIG. 2 is a functional block diagram illustrating a computingenvironment, in accordance with an embodiment of the present invention;

FIG. 3 is a flowchart depicting operations for automatically tuning anelectric stringed instrument with a floating bridge, on a computingdevice within the computing environment of FIG. 2, in accordance with anembodiment of the present invention;

FIG. 4 is a flowchart depicting operations for automatically retuning anelectric stringed instrument with a floating bridge, on a computingdevice within the computing environment of FIG. 2, in accordance with anembodiment of the present invention;

FIG. 5 is a table depicting guitar frets and notes versus frequencies,in accordance with an embodiment of the present invention;

FIG. 6 is a flowchart depicting operation for automatically retuning anelectronic stringed instrument with a broken string, on a computingdevice within the computing environment of FIG. 2, in accordance with anembodiment of the present invention;

FIG. 7 is an illustration of a bridge tuning system, in accordance withan embodiment of the present invention; and

FIG. 8 is a block diagram of components of a computing device executingoperations for automatically tuning an electric guitar with a floatingbridge, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

An embodiment of the present invention recognizes that stringedinstruments can get out of tune while being played. For example, as themusician plucks the strings, the tension in string changes over time. Asthe tension in the string changes, the frequency of the notes played onthe string change; in affect, changing the tune of the instrument.Often, an instrument needs to be re-tuned (e.g., tension of the stringsneed to be modified) after a short period of play. Embodiments of thepresent invention recognize that an out of tune instrument can affectthe quality of music. Embodiments of the present invention apply to allelectric stringed instruments using a floating bridge (e.g., a violin,an acoustic electric guitar, etc.); however, for ease of description,embodiments will be described with reference to an electric guitar.Typically, an electric guitar is tuned by locking the bridge, tuning theguitar using the tuning pegs at the head of the guitar, and adjustingthe springs on the back of the guitar until the spring tension matchesthe tension of the strings. Embodiments of the present inventionrecognize that this can be a complicated and time consuming process.

An embodiment of the present invention provides a technique forautomatically retuning a guitars. By making small corrective changes tothe tension of the guitar strings, as the string tension changes due toplaying, the guitar can be kept in tune. Further, an embodiment of thepresent invention makes corrective changes to the tension of a guitarstring as the guitar is being played. Embodiments of the presentinvention provide retuning through subtle changes to the string tensionwhile the guitar is in use. In some embodiments, the use of subtlechanges allows the guitar to be tuned without causing noticeable changesto the sound. An embodiment of the present invention provides a meansfor a user to change the tuning of a guitar during a performance. Forexample, the user can select a different tuning between or during asong.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is an illustration of a guitar, in accordance withan embodiment of the present invention. For example, FIG. 1 is anillustration of a guitar in guitar environment 100. Guitar environment100 includes strings 112 that run from guitar head 102 to bridge 106.

Guitar head 102 includes tuning pegs 104 and a head controller (notshown). Each tuning peg is associated with a string. For example, when atuning peg is rotated, the tension in the associated string is adjusted.In some embodiments, the head controller controls servo motors attachedto tuning pegs 104. In these embodiments, a user can interact with thehead controller to tune strings 112 via tuning pegs 104. For example, totune strings 112, the head controller sends a signal to servo motorsattached to tuning pegs 104, causing tuning pegs 104 to either tightenor loosen strings 112. Turning tuning pegs 104 changes the tension instrings 112, causing the frequency of notes played on strings 112 tochange.

The body of the guitar includes bridge 106, tremolo arm 110, and abridge controller (not shown). In various embodiments, the body of theguitar also includes various sensors. For example, infrared (IR) sensorsand magnetic pickups can be located at the bridge of the guitar. IRsensor measures the height of the strings from the guitar and allow thebridge controller to keep the strings at a desired height. Magneticpickups measure disturbances to their magnetic field caused by stringvibrations and produce a voltage which is used by an amplifier toproduce sound. The magnetic pickup signal is monitored by the bridgecontroller to measure the frequency of notes. The height of bridge 106is adjustable, allowing a user to select the height of strings 112. Insome embodiments, tremolo bar 110 can be used to set the desiredposition of bridge 106. Strings 112 are anchored by bridge 106. Bridge106 includes an assembly, as described in FIG. 7. Springs in the bridgeassembly balance the tension in strings 112 to maintain the position ofbridge 106. In some embodiments, tension of the bridge springs can beadjusted to balance with the tension of strings 112.

FIG. 2 is a functional block diagram illustrating a computingenvironment, in accordance with an embodiment of the present invention.For example, FIG. 2 is a functional block diagram illustrating computingenvironment 200. Computing environment 200 includes bridge controller202 and head controller 214 connected over network 220. Bridgecontroller 202 includes tuning program 204.

In various embodiments, bridge controller 202 is a computing device thatcan be a standalone device, a server, a laptop computer, a tabletcomputer, a netbook computer, a personal computer (PC), or a desktopcomputer. In another embodiment, bridge controller 202 represents acomputing system utilizing clustered computers and components to act asa single pool of seamless resources. In general, bridge controller 202can be any computing device or a combination of devices with access tosome or all of head controller 214, bridge servo motors 206, IR sensors208, strain sensors 218, pressure sensor 210, magnetic pickups 212, andtuning peg servo motors 216, and with access to and/or capable ofexecuting tuning program 204. Bridge controller 202 may include internaland external hardware components, as depicted and described in furtherdetail with respect to FIG. 7.

In this exemplary embodiment, tuning program 204 is bridge controller202. In other embodiments, tuning program 204 may reside on anothercomputing device (e.g., head controller 214), provided that each canaccess and is accessible by each other of tuning program 204, bridgeservo motors 206, infrared (IR) sensors 208, strain sensors 218,pressure sensor 210, magnetic pickups 212, and tuning peg servo motors216. In yet other embodiments, tuning program 204 may be storedexternally and accessed through a communication network, such as network220. Network 220 can be, for example, a local area network (LAN), a widearea network (WAN) such as the Internet, or a combination of the two,and may include wired, wireless, fiber optic or any other connectionknown in the art. In general, network 220 can be any combination ofconnections and protocols that will support communications betweenbridge controller 202 and head controller 214, in accordance with adesired embodiment of the present invention.

In some embodiments, bridge controller 202 receives data from bridgeservo motors 206, IR sensors 208, pressure sensor 210, magnetic pickups212, and strain sensors 218. Bridge servo motors 206 operate to loosenor tighten screws in the bridge assembly. As the screws are loosened ortightened, tension in springs in the bridge assembly is adjusted. Thetension of the strings are adjusted as the tension in the bridge springsare adjusted. IR sensors 208 measure the height of the strings from thebody of the instrument. In some embodiments, the height of the string isindicative of the balance between string tension and spring tension. Forexample, where the height of the string remains constant, the tension ofthe strings is equal to the tension of the springs. Pressure sensor 210is located at the base of the tremolo arm. Pressure sensor 210determines whether a user is using the tremolo arm. In some embodiments,automatic retuning is temporarily disabled while the tremolo arm is inuse. Magnetic pickups 212 detect string vibration and deliver a signalto an amplifier and tuning program 204. String vibration data is used todetermine the frequency of the string. Strain sensors 218 are attachedto each string. Strain sensors 218 measure string tension to determinewhether a user is purposely bending a string. Where data from strainsensors 218 indicates the user is purposefully bending the string, theautomatic retuning is temporarily disabled. For example, automaticretuning is disabled until strain sensor 218 determines a string isplayed without bending.

Tuning program 204 operates to receive signals from various sensors andcause servo motors to adjust string tension and spring tension toautomatically tune a stringed instrument in real time. For example, auser interacts with tuning program 204 to initiate tuning of theinstrument. In some embodiments, the user interacts with bridgecontroller 202 (e.g., presses a button) to initiate the tuning. Inanother embodiment, the user interacts with head controller 214 (e.g.,presses a button) to select and initiate the tuning. Tuning program 204receives data from various sensors to determine the height of the stringfrom the body of the guitar and the frequency of a string being played.

Tuning program 204 can perform an initial tuning of the instrument or aretuning of the instrument. In some embodiments, the user selects apreferred height of each string prior to the initial tuning. The heightis measured by IR sensors 208. Throughout the tuning process, tuningprogram 204 uses the initial IR sensor readings as a baseline for stringheight. In the initial tuning of the instrument, tuning program 204periodically adjusts the spring tension of bridge 106 to maintain thebaseline height. Tuning program 204 determines note frequencies based oninformation from magnetic pickups 212. The measured frequencies arecompared to known frequencies of a frequency table. Tuning program 204sends instructions to head controller 214, based on the frequencycomparisons. In some embodiments, the instructions indicate actions fortuning peg servo motors 216. For example, the instructions can be fortuning peg servo motors 216 to rotate left or right, causing the tuningpeg to tighten or loosen the string. Tuning program 204 continues tosend instructions to head controller until the measured frequenciesmatch the frequencies of the frequency table.

In some embodiments, tuning program 204 monitors the frequency of notesplayed on the instrument as the instrument is played. In theseembodiments, tuning program 204 continuously monitors note frequenciesvia magnetic pickups 212. Tuning program 204 issues instructions tobridge servo motors 206 to rotate left or right, causing screws toincrease or decrease the tension of springs attached to the bridge. Asthe spring tension changes, the bridge is raised or lowered. In someembodiments, tuning program 204 continues to issue instructions tobridge servo motors 206 until the measured frequency matches thefrequencies of the frequency table.

In various embodiments of the present invention, head controller 214 canbe a laptop computer, a tablet computer, a netbook computer, a personalcomputer (PC), a desktop computer, a personal digital assistant (PDA), asmart phone, or any programmable electronic device capable ofcommunicating with bridge controller 202 via network 220. In someembodiments, head controller 214 receives data from magnetic pickups 212and controls tuning peg servo motors 216. Tuning peg servo motors 216operate to turn tuning pegs as the head of the instrument. As the tuningpegs are turned, the tension in the string is increased or decreased(i.e., based on the direction the tuning peg is turned).

FIG. 3 is a flowchart depicting operations for automatically tuning anelectric stringed instrument, on a computing device within the computingenvironment of FIG. 2, in accordance with an embodiment of the presentinvention. For example, FIG. 3 is a flowchart depicting operations 300of tuning program 204, on bridge controller 202 within computingenvironment 200. Operations 300 are described in reference to a singlestring of a guitar; however, it should be appreciated that tuningprogram 204 can tune multiple strings are once or tune several stringsin succession.

In step 302, tuning program 204 determines the height of a string. Insome embodiments, the user is able to set the height of a string byadjusting the bridge. For example, by depressing the tremolo arm, theheight of the bridge can be adjusted. The height of the strings from thebody of the guitar is set by the user before the automated tuningbegins. IR sensors located in the body of the guitar, near the bridge,measure the height of the strings. This measured height is used as abaseline for tuning the guitar. For example, as the tuning pegs areturned, the tension in the strings changes and causes the height of thestring to change (e.g., as the tension increases the height increases).Tuning program 204 will make modifications to either the tension of thebridge springs or the tuning pegs to maintain the height of the stringfrom body of the guitar.

In step 304, tuning program 204 locks the bridge. The bridge holds thestrings at the desired height during the tuning process. Once the bridgeis locked, the position of the bridge cannot be changed unless thebridge is unlocked.

In step 306, tuning program 204 receives a request to tune theinstrument. In some embodiments, the request is a result of aninteraction by the user. For example, the user interacts with a buttonlocated on either the head controller or the bridge controller. In someembodiments, the user is able to choose the tuning. For example, a usercan select a standard tuning or an alternative tuning. Some examples ofalternative tunings include: open, crossnote, modal, dropped, andinstrumental.

In step 308, tuning program 204 analyzes a frequency of the string. Insome embodiments, the user strums the guitar strings in order to causevibration of the strings. In another embodiment, the guitar includes amechanism that causes the strings to vibrate. The vibration of thestring is recorded by a magnetic pickup. In some embodiments, themagnetic pickup is located in the body of the guitar, near the bridge.The data from the magnetic pickup is sent to the bridge controller.Tuning program 204 uses the data from the magnetic pickup to determinethe frequency of the string. In some embodiments, a combination of thestrain sensors and the IR sensors is used by tuning program 204 todetermine which string is being played. Tuning program 204 uses a table(e.g., the table in FIG. 5, which is representative of a standardtuning) to determine whether the measured frequency is equal to anexpected note on the determined string. For example, in reference toFIG. 5, tuning program 204 determines that the measured frequency wasfrom the 3^(rd) string. The measured frequency was 267 Hz. Tuningprogram 204 references the table to determine that 267 Hz is not afrequency of an expected note from the 3^(rd) string. Tuning program 204determines that the 3^(rd) string needs to be tuned.

In step 310, tuning program 204 causes servo motors attached to thetuning pegs to adjust the string tension. When the measured frequencydoes not match an expected frequency from the frequency table, tuningprogram 204 causes the tuning peg servo motors to be activated, toadjust the tension in the string. In some embodiments, tuning program204 repetitively analyzes the frequency of the string and causes thetuning peg servo motors to adjust the string tension. In theseembodiments, tuning program 204 moves to step 312 in response to themeasured frequency equaling an expected frequency from the frequencytable.

In step 312, tuning program 204 adjusts spring tension to equal thestring tension. Tuning program 204 causes the bridge serve motors totighten or loosen the screws attached to the bridge springs. Theadjustment of the screws causes the tension in the springs to change.The tension in the springs is adjusted until the tension in the springsis equal to the tension in the strings at the desired height determinedin step 302.

In decision 314, tuning program 204 determines whether the measuredfrequencies match the frequency table. Tuning program 204 uses themeasured frequency to determine whether the guitar is in tune. If themeasured frequencies match frequencies listed on the table for thestring (decision 314, YES branch), then tuning program 204 unlocks thebridge (step 316). If the measured frequencies do not match frequencieslisted on the table for the string (decision 314, NO branch), thentuning program 204 analyzes the frequency of the string again (e.g.,returns to step 308). In step 316, tuning program 204 unlocks thebridge. The bridge is unlocked after all of the strings are in tune.

FIG. 4 is a flowchart depicting operations for automatically retuning anelectric stringed instrument with a floating bridge, on a computingdevice within the computing environment of FIG. 2, in accordance with anembodiment of the present invention. For example, FIG. 4 is a flowchartdepicting operations 400 of tuning program 204, on bridge controller 202within computing environment 200. In some embodiments, operations 400occur as a user is playing the guitar.

In step 402, tuning program 204 detects a string being played. Tuningprogram uses a combination of the IR sensors and the strain sensors todetermine which string of a guitar is being played. For example theheight of the string and strain on the change temporarily as a userstrums. Data from the IR sensors and strain sensors are sent to thebridge controller and used by tuning program 204 to determine whichstring of the guitar is producing a note.

In decision 404, tuning program 204 determines whether a tremolo sensoror stain sensor are activated. The guitar includes a pressure sensor atthe base of the tremolo arm and a strain sensor attached to each string.The pressure sensor is activated when the user presses or pulls on thetremolo arm. The tremolo arm changes tension of the strings, causing thesound from the strings to be altered. In some examples, a user mayintentionally bend a string (e.g., apply more force than usually tochange the tension, and therefore the sound of a string). A userintentionally bending the string will activate the strain sensor in thestring, sending a signal to the bridge controller. If tuning program 204determines that either the pressure sensor or the strain sensor for thestring being played has been activated (decision 404, YES branch), thentuning program 204 temporarily disables automatic tuning of the guitarand in some embodiments loops back to step 402 once the activated sensoris no longer enabled. In some embodiments, the automatic tuning isdisabled until the user releases the tremolo arm. Tuning program 204recursively detects strings being played. Therefore, where tuningprogram 204 detects an activated strain sensor or tremolo sensor, tuningprogram 204 returns to step 402 to detect another string being played.If neither the pressure sensor nor the strain sensor are activated(decision 404, NO branch), then tuning program 204 measures thefrequencies played on the strings in use (step 406).

In step 406, tuning program 204 determines multiple frequencies of notesplayed on the string. Tuning program 204 receives data from the magneticpickup and determines the frequency of the string. Tuning program 204determines whether the frequency matches a frequency from the frequencytable, as discussed below in decision 408. Tuning program 204 storesmeasured frequencies for a predetermined time, to determine if thefrequency is trending toward one end of an accepted range or another. Bystoring the measured frequencies, tuning program 204 knows whether totune the string up or down.

In decision 408, tuning program 204 determines whether the frequenciesmatch frequencies on a frequency table. Tuning program 204 uses afrequency table, such as the table depicted in FIG. 5, to determine ifthe guitar strings are in tune. FIG. 5 is a representative frequencytable (i.e., FIG. 5 represents a standard guitar tuning). It should berecognized that a user can select an alternative tuning (e.g., open,crossnote, modal, dropped, or instrumental). In some embodiments, tuningprogram 204 includes multiple frequency tables. In these embodiments,tuning program 204 will compare the measured frequencies with thefrequency table used to tune the guitar in operations 300. As depictedin FIG. 5, the table includes all of the frequencies for notes that canbe played on each string. Tuning program 204 uses the measured frequencyand determined string to determine whether the guitar is in tune. If themeasured frequencies match frequencies listed on the table for thestring (decision 408, YES branch), then tuning program 204 returns tostep 402 to detect another string being played. If the measuredfrequencies do not match frequencies listed on the table for the string(decision 408, NO branch), then tuning program 204 adjusts the tensionof the strings and/or springs to change the tuning of the string.

In some embodiments, the measured frequency has to be within apercentage of the accepted frequency of the frequency table. Forexample, the measured frequency does not have to be an exact match for afrequency listed on the frequency table (e.g., FIG. 5). In someembodiments, the error percentage is based on the quality of thehardware (e.g., tuning pegs, springs, saddles, bridge, truss rod, etc.).For example, a guitar with higher quality parts will not go out of tuneas often as a guitar with cheaper parts. In this example, a guitar usinghigh quality parts may have a lower acceptable error percentage. In someembodiments, the bridge controller has machine learning capabilities.For example, the bridge controller learns to what degree a string'sfrequency changes with the smallest possible adjustment by the servomotor. In some embodiments, the allowable frequency error percentage isset.

For example, with reference to FIG. 5, tuning program 204 has anallowable error tolerance of +/−0.6%. For the first string, the note Ais accepted from 437.36-442.64 Hz, the note A# is accepted from463.204-468.796 Hz, the note B is accepted from 491.036-496.964 Hz, etc.If the first measured frequency of the first string is 464 Hz, the firststring is in tune. If the measured frequency is 490 Hz, the frequency isnot in an acceptable range for the first string and tuning program 204continues to step 410.

In step 410, tuning program 204 adjusts the tuning of the string. Basedon the frequency measurements, tuning program 204 activates either thebridge servo motors or the tuning peg servo motors to tune the stringsand/or springs. In some embodiments, tuning program 204 waits until apitch change (e.g., a new note is played) before activating the servomotors. Small changes to the string and/or spring tension keeps theguitar in tune while being played. As small changes are being made,unwanted sounds are not detected. Tuning program 204 recursively detectsstrings being played in order to monitor the tuning of the guitar inreal time.

FIG. 6 is a flowchart depicting operations for automatically retuning anelectronic stringed instrument with a broken string, on a computingdevice within the computing environment of FIG. 2, in accordance with anembodiment of the present invention. For example, FIG. 6 is a flowchartdepicting operations 600 of tuning program 204, on bridge controller 202within computing environment 200. In some embodiments, operations 600occur as a user is playing the guitar.

In step 602, tuning program 204 detects a broken string. In someembodiments, a broken string is detected by a sudden drastic change inspring tension. For example, when a string breaks, the sudden lack oftension on the front of the guitar will cause a sudden change in tensionin the springs. In another embodiment, the broken string is detects bythe strain sensor attached to the string.

In step 604, tuning program 204 mutes the sound. Tuning program 204stops the magnetic pickup from sending the signal to the amplifier. Theguitar is muted because resulting tuning changes will be more drasticthan those in operations 400. For example, changes made to the remainingstrings will have a noticeable sound, if the strings are played duringthe tuning.

In step 606, tuning program 204 adjusts the spring tension. Tuningprogram 204 causes the servo motors to lower the tension in the springsto account for the loss of tension from the broken spring. The tensionof springs is adjusted until it equals the tension in the strings at thedesired height.

In step 608, tuning program 204 adjusts the tuning of the strings.Tuning program 204 measures the frequency of each unbroken string.Tuning program 204 causes tuning peg servo motors to adjust the tuningpegs. The amount and direction of adjustment is based on the differencebetween the measured frequency and the frequency table value.

In decision 610, tuning program 204 determines whether the measuredfrequencies match the frequency table. Tuning program 204 uses afrequency table (e.g., the table in FIG. 5) and the measured frequencyto determine whether the guitar is in tune. If the measured frequenciesmatch frequencies listed on the table for each string (decision 610, YESbranch), then tuning program unmutes the guitar (step 612). If themeasured frequencies do not match frequencies listed on the table foreach string (decision 610, NO branch), then tuning program 204 loopsback to step 606 to adjust tension of the string and/or springs tochange the tuning of the string. Each of the unbroken strings are tunedbefore the guitar is unmuted.

In step 612, tuning program 204 unmutes the sound. In response todetermining that all of the strings are properly tuned, tuning program204 unmutes the sound. Tuning program 204 allows signals from themagnetic pickups to pass to the amplifier.

FIG. 7 is an illustration of a bridge tuning system, in accordance withan embodiment of the present invention. In some embodiments, the bridgetuning system extends to the back of the guitar. The bridge tuningsystem includes bridge 702, springs 704, bridge servo motors 706, andthe bridge controller (not depicted). Bridge 702 is a back view ofbridge 106 (as shown in FIG. 1). Springs 704 create tension in thestrings attached to bridge 702. The tension in springs 704 is controlledby screws which are rotated by bridge servo motors 706. Tightening thescrews causes the tension in springs 704 to increase, which causes thetension in the strings to increase. Loosening the screws causes thetension in springs 704 to decrease, which causes the tension in thestrings to decrease. Small changes to the tension of springs 704 allowbridge controller to make small changes to the tension of the strings.The small changes in tension result in small changes to the frequency ofa string. Bridge servo motors 706 are controlled by instructions fromthe bridge controller.

FIG. 8 is a block diagram of components of a computing device, generallydesignated 800, in accordance with an embodiment of the presentinvention. In one embodiment, computing device 800 is representative ofbridge controller 202. For example, FIG. 7 is a block diagram of bridgecontroller 202 within computing environment 200 executing operations oftuning program 204.

It should be appreciated that FIG. 8 provides only an illustration ofone implementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Manymodifications to the depicted environment may be made.

Computing device 800 includes communications fabric 808, which providescommunications between computer processor(s) 802, memory 804, cache 806,persistent storage 810, communications unit 814, and input/output (I/O)interface(s) 812. Communications fabric 808 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric808 can be implemented with one or more buses.

Memory 804 and persistent storage 810 are computer-readable storagemedia. In this embodiment, memory 804 includes random access memory(RAM). In general, memory 804 can include any suitable volatile ornon-volatile computer readable storage media. Cache 806 is a fast memorythat enhances the performance of processors 802 by holding recentlyaccessed data, and data near recently accessed data, from memory 804.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 810 and in memory804 for execution by one or more of the respective processors 802 viacache 806. In an embodiment, persistent storage 810 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 810 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 810 may also be removable. Forexample, a removable hard drive may be used for persistent storage 810.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage810.

Communications unit 814, in these examples, provides for communicationswith other data processing systems or devices, including resources ofnetwork 220. In these examples, communications unit 814 includes one ormore network interface cards. Communications unit 814 may providecommunications through the use of either or both physical and wirelesscommunications links. Program instructions and data used to practiceembodiments of the present invention may be downloaded to persistentstorage 810 through communications unit 814.

I/O interface(s) 812 allows for input and output of data with otherdevices that may be connected to computing device 800. For example, I/Ointerface 812 may provide a connection to external devices 816 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 816 can also include portable computer-readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention (e.g., software and data) can bestored on such portable computer-readable storage media and can beloaded onto persistent storage 810 via I/O interface(s) 812. I/Ointerface(s) 812 also connect to a display 818.

Display 818 provides a mechanism to display data to a user and may be,for example, a computer monitor, or a television screen.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The term(s) “Smalltalk” and the like may be subject to trademark rightsin various jurisdictions throughout the world and are used here only inreference to the products or services properly denominated by the marksto the extent that such trademark rights may exist.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer system, the computer system comprising: one or more computer processors, one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising: program instructions to determine an initial height of a first string of an instrument having a plurality of strings and a floating bridge, wherein a height of the plurality of strings is determined using a bridge sensor; program instructions to lock the floating bridge; program instructions to analyze a frequency of a first string; program instructions to determine the frequency of the first string does not match a predetermined frequency; program instructions to cause a tuning peg servo motor to adjust a tuning peg, the tuning peg configured to adjust a string tension of the first string; program instructions to cause one or more bridge servo motors to adjust a spring tension in one or more springs attached to the floating bridge, wherein the spring tension of the one or more springs equals the string tension of the first string; program instructions to unlock the floating bridge in response to determining the frequency of the first string matches the predetermined frequency; program instructions to detect that a second string of the plurality of strings is vibrating within a predetermined range of frequencies; program instructions to detect an increased tension of the second string, wherein the increased tension is not within a predetermined threshold and in response, suspending, by one or more processors, detection of frequencies for the second string; program instructions to detect movement of a tremolo arm and in response, disabling, by one or more processors, detection of frequencies for the plurality of strings; program instructions to determine a first frequency of the second string, using a magnetic pickup; program instructions to compare the first frequency to a table of expected frequencies; program instructions to detect a pitch change of the second string; and program instructions to determine the first frequency is not on the table of expected frequencies; program instructions to cause the tuning peg servo motor to adjust the tuning peg, the tuning peg configured to adjust a tension of the second string, wherein the instrument is retuned while the instrument is being played; program instructions to detect a broken string of the plurality of strings; program instructions to mute a sound output of the instrument; program instructions to adjust the spring tension of the one or more springs, wherein the spring tension is adjusted until the spring tension equals the string tension, and wherein the floating bridge is at a user defined position; program instructions to analyze a second frequency of the first string; program instructions to determine the second frequency of the first string does not match a predetermined frequency; program instructions to cause a tuning peg servo motor to adjust a tuning peg, the tuning peg configured to adjust a string tension of the first string; and in response to determining the first string is tuned, program instructions to restore the sound output of the instrument. 